190611-Python-列表推导式 字典推导式 集合推导式使用详解.md详解

文章目录
  1. I. 列表达式
    1. 1. 基本使用姿势
    2. 2. 实例说明
  2. II. 字典推导式 & 集合推导式
  3. II. 其他
    1. 1. 一灰灰Blog: https://liuyueyi.github.io/hexblog
    2. 2. 声明
    3. 3. 扫描关注

记录下python中语法糖列表表达式的使用姿势,以此替换掉日常的python脚本中大量的for循环

I. 列表达式

1. 基本使用姿势

可以简单的理解为单行的for循环,形如:

1
[xx for xx in range(0, 10)]

2. 实例说明

下面给出几个简单的例子

case1: 列表中的每个数字获取平方

1
2
3
>>> [x * x for x in range(0, 5)]
[0, 1, 4, 9, 16]
>>>

case2: 列表转字符串

我们知道可以直接使用 ','.join() 方式将列表转换成字符串,但是如果列表的元素是数字,那么直接上面这种方式执行会报错

一个可选的姿势 ','.join([str(x) for x in range(0, 5)])

1
2
3
4
5
6
>>> ','.join(range(0, 5))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected str instance, int found
>>> ','.join([str(x) for x in range(0, 5)])
'0,1,2,3,4'

case3: 字典转list

1
2
3
>>> item = {'a': 1, 'b': 3, 'c': 10}
>>> [ f'{key}:{value}' for key, value in item.items()]
['a:1', 'b:3', 'c:10']

II. 字典推导式 & 集合推导式

看完列表之后再看下面两个就比较简单了,使用差不了多少,举个简单的例子

字典推导式:

  • 将列表推导式的中括号换成大括号
  • k : v 方式指定字典的key,value
1
2
>>> { x: x*x for x in range(0, 10)}
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}

集合推导式:

使用集合推导式可以很方便的将列表转换为集合;使用列表推导式,也可以很方便的将集合转换为列表

1
2
>>> { x % 6 for x in range(0, 12)}
{0, 1, 2, 3, 4, 5}

II. 其他

1. 一灰灰Bloghttps://liuyueyi.github.io/hexblog

一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛

2. 声明

尽信书则不如,已上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激

3. 扫描关注

一灰灰blog

QrCode

知识星球

goals

# Python

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×